With development of quantum chemistry theory and with advancement of computer technologies, it has become possible to perform precise simulations of structures and physical properties of molecules, and chemical bonds, molecular orbitals and electron states in molecules. This technique is generally called a molecular orbital method. Of the molecular orbital methods, an ab initio (non-empirical) molecular orbital method that in principal does not depend on empirical parameters needs an enormous computational amounts in order to solve Schrödinger equations even if it is performed by approximate calculations. Accordingly, it has been only possible to apply it to small molecules. However, with recent remarkable improvement in computer performance, it has become possible to perform ab initio molecular orbital method calculation of relatively large molecules including biological materials, so the technique has been able to be applied to, for example analysis and research of physiologically active substances.
There are several techniques in the ab initio molecular orbital method; the Hartree-Fock (HF) method is used as a most popular method for obtaining total energy of a molecule. The HF method is formalized as a method of solving a Roothaan equation (Eq. (1)), which is obtained by handling a Schrödinger equation by one-electron approximation and linear approximation.FC=SCε  (1)
In Eq. (1), F and S are given as N×N matrixes, C is given as an M×N matrix and ε is an M-dimensional vector, where N is the number of atomic orbitals (AO) and M is the number of molecular orbitals (MO) in a molecule under analysis. F is called a Fock matrix, and is given as Eq. (2).
                              F          rs                =                              H            rs                    +                                    ∑                              t                ,                                  u                  =                  1                                            N                        ⁢                                          D                tu                            ⁡                              [                                                      (                                          rs                      ❘                      tu                                        )                                    -                                                            1                      2                                        ⁢                                          (                                              rt                        ❘                        su                                            )                                                                      ]                                                                        (        2        )            where, D is called a density matrix and defined with MO coefficients C as in Eq. (3).
                              D          tu                =                  2          ⁢                                    ∑                              j                =                1                            OCC                        ⁢                                          C                tj                            ⁢                              C                uj                                                                        (        3        )            where, “occ” in symbol Σ represents the summation for all the molecular orbitals occupied by electron. S, H, (rs|tu) are physical quantities called overlap integral, H-core integral and two-electron integral, respectively, and are represented with atomic orbits φr as in Eqs. (4) to (6).
                              S          rs                =                              ∫                          -              ∞                        ∞                    ⁢                                    ϕ              r              *                        ⁢                          ϕ              s                        ⁢                                          ⅆ                3                            ⁢              x                                                          (        4        )                                          H          rs                =                              ∫                          -              ∞                        ∞                    ⁢                                                    ϕ                r                *                            ⁡                              [                                                      -                                          1                      2                                                        ⁢                                                            ∇                      2                                        ⁢                                          -                                                                        ∑                          i                          core                                                ⁢                                                                              Z                            i                                                                                                                                          r                              -                                                              R                                i                                                                                                                                                                                                                                    ]                                      ⁢                          ϕ              s                        ⁢                                          ⅆ                s                            ⁢              x                                                          (        5        )                                          (                      rs            ❘            tu                    )                =                              ∫                          -              ∞                        ∞                    ⁢                                                    ϕ                r                *                            ⁡                              (                1                )                                      ⁢                                          ϕ                s                            ⁡                              (                1                )                                      ⁢                          1                              r                12                                      ⁢                                          ϕ                t                *                            ⁡                              (                2                )                                      ⁢                                          ϕ                u                            ⁡                              (                2                )                                      ⁢                                          ⅆ                3                            ⁢              x                                                          (        6        )            where, “core” in symbol I represents the summation for the nucleus. Incidentally, Eq. (1) is given in the form of a linear equation, but the Fock matrix F is determined depending on atomic orbitals φi, so that it is actually a non-linear equation, which cannot be solved exactly. To solve this equation, a technique called SCF(Self-consistent filed) method is used.
As is well known, in the SCF method the calculation is carried out the
As is well known, in the SCF method the calculation is carried out the following sequence of:
[1] determining initial estimations of MO coefficients C;
[2] determining a density matrix D from MO coefficients C;
[3] determining a Fock matrix F using the obtained density matrix D;
[4] diagonalizing the Fock matrix F to determine an eigenvalue ε and a eigenvector;
[5] determining new MO coefficients C and a new density matrix D from the obtained eigenvector; and
[6] repeating steps [3] to [5] until density matrix D will not vary.
In the calculation of the SCF method, the most time-consuming part is the calculation step [3] of a Fock matrix F. The reason is that calculation of two-electron integral (rs|tu) needs to be repeated N4 times. There have been some methods of storing the result of two-electron integrals once calculated into a storage device. However, when a large-scale calculation, e.g., N is some ten thousands, has to be done, an enormous amount of disk capacity is needed. So, in most cases a direct process is adopted which calculates two-electron integrals in a step-by-step basis. Accordingly, enhancement of the speed of calculating Fock matrix F will directly affect the speedup of the whole calculation of the SCF method.
To enhance the speed of the calculation of the molecular orbital method, there have been disclosed Japanese Patent Application Laid-open No. 2000-293494 (JP-A-2000-293494), Japanese Patent Application Laid-open No. 2001-312485 (JP-A-2001-312458) and Japanese Patent Application Laid-pen No. H9-50428 (JP-A-9-050428). Any of these methods uses a single host machine such as a vector computer for executing matrix calculation or the like, while using parallel computers or a cluster of computers to execute calculation of Fock matrixes F or calculation of two-electron integrals.
However, in these methods, matrix calculation such as diagonalization is done by the so-called host machine, these methods entail the problem that it is impossible to handle a matrix greater than the memory capacity of the host machine. To deal with this problem, there are countermeasures such as using a multiple number of host machines in parallel and others. However, this measure is not so easy to realize because it is costly. In recent years, owing to reduction in price and improvement in performance of general-purpose computers, it has become possible to construct a high-speed inexpensive system by use of a computer cluster. In a general-purpose computer cluster, the memory capacity per each computer is small compared to that of a high-performance computer, but the capacity of the total system can be made large if computers to be coupled are increased in number. Further, increasing the number of the coupled computers also leads to speedup. However, a cluster of general purpose computers entails the problem in that it is impossible for each single computer to execute matrix calculation of a large-scale molecule because of the memory capacity for single computer being low, and that it is impossible to hold the whole matrix on the memory of a single computer if the number of molecular orbitals amounts to some ten thousands.
Patent document 1: JP-A-2000-293494
Patent document 2: JP-A-2001-312485
Patent document 3: JP-A-9-050428